package com.ssy.lingxi.order.service.feign;

import com.ssy.lingxi.order.model.dto.OrderProductDTO;

import java.math.BigDecimal;
import java.util.List;

/**
 * 合同服务Feign接口调用
 * @author 万宁
 * @version 2.0.0
 * @date 2021-08-26
 */
public interface IContractFeignService {
    /**
     * 合同订单（SRM订单）创建后，向合同服务同步订单数据
     * @param orderId 订单Id
     * @param totalAmount 订单金额
     * @param contractId 合同Id
     * @param products 商品信息列表
     */
    void createSrmOrderAsync(Long orderId, BigDecimal totalAmount, Long contractId, List<OrderProductDTO> products);

    /**
     * 合同订单（SRM订单）取消后，向合同服务同步订单数据
     * @param orderId 订单Id
     * @param totalAmount 订单金额
     * @param contractId 合同Id
     * @param products 商品信息列表
     */
    void cancelSrmOrderAsync(Long orderId, BigDecimal totalAmount, Long contractId, List<OrderProductDTO> products);

    /**
     * 向合同服务同步Srm订单数据
     * @param orderId 订单Id
     * @param totalAmount 订单金额
     * @param contractId 合同Id
     * @param type 类型：1-创建订单，2-取消订单
     * @param products 商品信息列表
     */
    void srmOrderAsync(Long orderId, BigDecimal totalAmount, Long contractId, Integer type, List<OrderProductDTO> products);
}
